package notes.java.java8.demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Stream API
 * 创建或获取方式
 */
public class J5_TestStream {
	
	public static void main(String[] args) {
		// 1、通过Collection系列集体的stream(串行流)或parallelStream(并行流)获取
		List<String> list = new ArrayList<>();
		Stream<String> stream = list.stream();
		
		// 2、通过Arrays的静态方法stream获取
		int[] array = {1, 2};
		IntStream stream2 = Arrays.stream(array);
		
		// 3、通过Stream类中的静态of方法
		Stream<Integer> stream3 = Stream.of(1, 2, 3);
		
		// 4、创建无限流(无限)
		// 4.1 迭代
		Stream<Integer> stream4 = Stream.iterate(0, (x)->x + 10);
		stream4.limit(10).forEach(System.out::println);
		
		// 4.2生成
		Stream<Double> stream5 = Stream.generate(()->Math.random());
		stream5.limit(10).forEach(System.out::println);
	}

}
